System and method for navigating a mobile device user interface with a directional sensing device

ABSTRACT

An electronic mobile device includes a display for displaying a graphical element. A tilt sensor is configured to sense first and second tilt angles of the mobile device. A processor is coupled to the display and the tilt sensor and configured to move the graphical element relative to the display in a first direction based on the first tilt angle, and to move the graphical element relative to the display in a second direction based on the second tilt angle.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. application Ser. No. 13/608164, filedSep. 10, 2012, which is a continuation of U.S. application Ser. No.13/442089, filed Apr. 9, 2012 (now U.S. Pat. No. 8,285,480), which is acontinuation of U.S. application Ser. No. 13/194405, filed Jul. 29, 2011(now U.S. Pat. No. 8,175,798), which is a continuation of U.S.application Ser. No. 12/949278, filed Nov. 18, 2010 (now U.S. Pat. No.8,014,940), which is a continuation of U.S. application Ser. No.12/396511, filed Mar. 3, 2009 (now U.S. Pat. No. 7,860,644), which is acontinuation of U.S. application Ser. No. 11/068667, filed Feb. 28, 2005(now U.S. Pat. No. 7,519,468), all the above applications herebyincorporated herein by reference.

TECHNICAL FIELD

This disclosure generally relates to mobile devices, and particularlyrelates to manipulating graphical elements in a mobile device graphicaluser interface.

BACKGROUND

A graphical element within a graphical user interface may be used toscroll through lists of data, such as lists of address entries, e-mailmessages, web pages, and the like. Activation of a manual inputnavigation device, such as a thumb wheel, generates a navigation signalto change the relative position of the graphical user element within thegraphical user interface. When the list of data is large, the mobiledevice user may be required to spend a significant amount of timeactuating the manual input navigation device to navigate through thelist.

SUMMARY

Disclosed herein are systems and methods for navigating a mobile deviceuser interface with a direction sensing device. A manual inputnavigation device and a sensor are utilized to manipulate graphicalelements in a mobile device graphical user interface. The manual inputnavigation device generates an input navigation signal for altering arelative position of the graphical element in the graphical userinterface, and the sensor measures a current tilt angle of the mobiledevice. Upon the generation of the input navigation signal, the currenttilt angle is stored as a reference tilt angle. The relative position ofthe graphical element is altered based on the difference between thesubsequent current tilt angle and the reference tilt angle.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1 and 2 depict an example mobile device and graphical userinterface;

FIG. 3 depicts relative tilt angles of the mobile device;

FIG. 4 is a flow chart illustrating a process of manipulating agraphical element in the mobile device graphical user interface based ona tilt angle;

FIG. 5 is a flow chart illustrating a process of manipulating thegraphical element in the mobile device graphical user interface based onthe tilt angle and a time duration;

FIG. 6 is a flow chart illustrating a process of adjusting a rate ofaltering the relative position of the graphical element in the mobiledevice graphical user interface based on a cardinality of a data list;

FIG. 7 is a flow chart illustrating a process of adjusting a rate ofaltering the relative position of the graphical element in the mobiledevice graphical user interface based on a secondary manual inputnavigation device;

FIGS. 8 and 9 are example circuit implementations for detecting a tiltangle of the mobile device;

FIG. 10 is a block diagram of an example system for redirectingelectronic messages to and from a mobile communication device; and

FIG. 11 is a block diagram illustrating an example mobile communicationdevice.

DETAILED DESCRIPTION

FIGS. 1 and 2 depict an example mobile device 10 and graphical userinterface 22. The graphical user interface 22 is displayed on a display20 and includes graphical elements 24 and 26.

A keyboard 30 may be utilized for typical keyboard input operations, anda manual input navigation device, such as a thumb wheel 40, may beutilized for navigating the graphical user interface 22. Other manualinput navigation devices may also be used, such as a touchpad, atrackball, a rocker switch, a joystick, or some other type of manualinput navigation devices.

The example graphical user interface 22 comprises an address booklisting of a plurality of address contacts. The graphical element 26 isused to invoke a paging function to page through the address booklisting. In the example address book listing shown, a total of 37 pagefunctions would be required to reach the end of the listing, asindicated by the page titles “1 of 37” and “37 of 37” in FIGS. 1 and 2,respectively.

The position of the graphical element 24 may be altered relative to theaddress book listing to select a desired contact on a particular addressbook page. In the example mobile device 10, the thumb wheel 40 may berotated counterclockwise or clockwise to move the graphical element 24up or down, respectively, within the graphical user interface 22.Actuation of the thumb wheel 40 generates an input navigation signalthat is utilized by a processing subsystem in the mobile device 10 tocause the relative position of the graphical element 24 within thegraphical user interface 22 to change.

The thumb wheel 40 may also be pressed inward to perform a selectionoperation. For example, if the user of the mobile device 10 desires toview the contact data of the address book entry entitled “Atkinson,Paul,” the user would rotate the thumb wheel 40 in a clockwise directionto move the graphical element 24 down to the subject address book entry.Once the graphical element 24 is juxtaposed to the address book entryentitled “Atkinson, Paul,” the user may then press the thumb wheel 40inward to invoke another graphical user interface window that displaysthe subject contact data.

Selecting an address book entry already displayed on the display 20 inthe graphical user interface 22 is thus a relatively quick task. If thedesired address entry is not located on the current page displayed inthe graphical user interface 22, however, then the user may be requiredto repetitively actuate the thumb wheel 40. For example, if a desiredaddress entry is located on page 25 of 37, the user may have torepeatedly rotate the thumb wheel in a clockwise direction to page fromthe current page 1 to page 25. Alternatively, the user may have toselect a paging operation 24 times, or invoke another graphical userinterface to perform a search function.

In the example mobile device 10 of FIGS. 1 and 2, however, a sensor 50is utilized to alter the relative position of the graphical element 24within the graphical user interface 22. The sensor 50 is operable togenerate a current tilt signal that provides indicia of the current tiltangle of the mobile device 10, and may comprise a two-axis or three-axisaccelerometer. Upon the generation of the input navigation signal, thecurrent tilt signal is stored as a reference tilt signal. Thereafter, adelta tilt signal is obtained by measuring the difference between thecurrent tilt signal and the reference tilt signal.

Based on the value of the delta tilt signal, the mobile device 10 willgenerate a sensor navigation signal for altering the relative positionof the graphical element 24 in the graphical user interface 22. In oneembodiment, the sensor navigation signal alters the relative position ofthe graphical element 24 only after the value of the delta tilt signalexceeds a threshold value. For example, the sensor navigation signal mayalter the relative position of the graphical element 24 only after thevalue of the delta tilt signal exceeds 30°.

Thus, actuation of the thumb wheel 40 in conjunction with a subsequenttilting of the mobile device 10 causes the position of the graphicalelement 24 relative to the graphical user interface to be altered.Further tilting of the mobile device 10 may also further alter therelative position of the graphical element 24. For example, the user maytilt the mobile device 10 in a first direction relative to the referencetilt angle to scroll down the contact list, and may tilt the mobiledevice 10 in an opposite direction to scroll up the contact list, andmay return the mobile device 10 to the reference tilt angle to maintainthe position of the graphical element 24 in the graphical user interface22.

In another embodiment, the current tilt signal is stored as a referencetilt signal upon each actuation of the thumb wheel 40. Accordingly, theuser of the mobile device 10 may automatically preclude the sensornavigation signal from altering the relative position of the graphicalelement 24 by continuously actuating the thumb wheel 40.

Manipulating the relative position of the graphical element 24 withinthe graphical user interface 22 via the sensor 50 may be betterunderstood with reference to FIG. 3, which depicts relative tilt anglesof the mobile device 10. The axis hh′ defines a true horizontal. Theplane of the mobile device 10 is aligned with an axis AA′, and an angleα is defined by the angular deflection of the axis AA′ from thehorizontal axis hh′. The sensor 50 may be mounted within the mobiledevice 10 so that it generates a null value indicative of zero angulardeflection when the axis AA′ is aligned with the axis hh′.

In the embodiment of FIG. 3, the sensor 50 senses the current tilt angleof the mobile device 10 relative to the horizontal axis hh′. Actuationof the thumb wheel 40 generates an input navigation signal that maycause the graphical element 24 to change position in the graphical userinterface 22. Each time the input navigation signal is generated, thecurrent tilt angle α of the mobile device 10 is stored as a referencetilt signal. Thereafter, a delta tilt signal is obtained by measuringthe difference between the current tilt signal α and the reference tiltsignal.

To alter the relative position of the graphical element 24 in thegraphical user interface 22, the user tilts the mobile device 10 toincrease or decrease the value of the delta tilt signal. For example, ifthe thumb wheel 40 is actuated when α is +10°, the value of thereference tilt signal will be +10°. To thereafter cause the graphicalelement 24 to scroll upward, the mobile device 10 may be rotated beyonda threshold angle β₁ relative to the reference tilt angle; likewise, tocause the graphical element 24 to scroll downward, the mobile device 10may be rotated beyond a threshold angle −β₁ relative to the referencetilt angle. Assuming β₁ is 30_(o), then the graphical element 24 willscroll upward when the delta tilt signal indicates that the mobiledevice 10 is rotated 40° (40°−α=β₁) from the true horizontal hh′, andwill scroll downward when the mobile device 10 is rotated −20°(−20°−α=−β₁) from the true horizontal hh′. Rotating the mobile device 10to an angle between 40° and −20° relative to the horizontal axis hh′will cause the graphical element 24 to remain in a fixed position.

In another embodiment, the rate of altering of the relative position ofthe graphical element 24 may be altered based on a plurality ofthreshold values. For example, if the mobile device 10 is rotated beyonda first threshold value β₁, then the graphical element 24 may scrollupward at a first scroll rate. Rotating the mobile device 10 beyond asecond threshold value β₂, however, may cause the graphical element 24to scroll upward at a second scroll rate that is faster than the firstscroll rate.

In addition to monitoring the current tilt angle relative to a singleaxis as shown in FIG. 3, the sensor 50 and processing subsystem of themobile device 10 may be further configured to monitor the current tiltangle of the mobile device 10 relative to two- or three axes, and therelative position of the graphical element 24 within the graphical userinterface 22 may be manipulated in two dimensions. For example, agraphical element in a spread sheet, such as a selection box, may bemoved relative to both columns and rows by tilting the mobile device 10forward and backwards and side-to-side.

Finally, if the user of the mobile device 10 does not desire to alterthe position of the graphical element 24 based on the tilt angle, theuser may selectively disable this function. Alternatively, the user maysimply continue to actuate the thumb wheel 40, which, in turn,continuously updates the reference tilt angle. By continually updatingthe reference tilt angle, the delta tilt angle will typically staywithin the threshold values β₁ and −β₁.

FIGS. 4-8 are flow charts illustrating example processes of manipulatingthe graphical element 24 in the mobile device 10 graphical userinterface 22 based on measurements related to the tilt angle of themobile device 10. In particular, FIG. 4 is a flow chart 100 illustratinga process of manipulating a graphical element in a mobile devicegraphical user interface based on a tilt angle. In step 102, a graphicaluser interface is invoked in which the relative position of a graphicalelement may be changed in the graphical user interface.

Step 104 monitors if a manual input navigation device has been actuated.If so, then step 106 reads the current tilt angle provided by a sensingdevice and stores the current tilt angle as a reference tilt angle.After step 106, or upon step 104 determining that a manual inputnavigation device has not been actuated, step 108 reads the current tiltangle of the mobile device, and step 110 measures the difference betweenthe current tilt angle and the reference tilt angle to determine thedelta tilt angle.

After the delta tilt angle in step 110 is determined, step 112determines if the delta tilt angle has crossed a threshold. A thresholdmay be crossed either positively or negatively, such as the delta tiltangle exceeding a threshold angle or falling below a threshold angle,respectively.

If a threshold has not been crossed, then the process returns to step104. If, however, a threshold has been crossed, then step 114 generatesa sensor navigation signal to alter the position of the graphicalelement based on the crossed threshold. For example, if the firstthreshold β₁ of FIG. 3 is positively crossed, then the generated sensornavigation signal may cause the graphical element to scroll up a list ofdata at a first rate. If upon a subsequent execution of step 114 it isdetermined that the second threshold β₂ is positively crossed, thengenerated sensor navigation signal may cause the graphical element toscroll up a list of data at a second rate. Finally, if step 114 laterdetermines that the first threshold β₁ of FIG. 3 is negatively crossed,then the generated sensor navigation signal may cause the graphicalelement to stop scrolling.

In one embodiment, hysteresis is implemented to preclude cycling of thesensor navigation signal when the mobile device is rotated beyond athreshold. The hysteresis may be implemented by decreasing a thresholdvalue upon the delta tilt value exceeding the threshold value, andincreasing the threshold value upon the delta tilt value falling belowthe threshold value. For example, if a threshold value β is 30°, it maybe decreased to 20° upon being positively crossed by the delta tiltvalue. Thereafter, when the delta tilt value falls below 20°, thethreshold value β may be increased back to 30°.

The process of FIG. 4 continues until the graphical user interface isexited. The graphical user interface may be exited by selecting aparticular data element, exiting a program, or by some other processstep.

FIG. 5 is a flow chart 120 illustrating a process of manipulating thegraphical element in the mobile device graphical user interface based ona tilt angle and a time duration. In the example process of FIG. 5, therate of altering of the relative position of the graphical element isadjusted in proportion to the value of the time counter.

In step 122, a graphical user interface is invoked in which the relativeposition of a graphical element may be changed in the graphical userinterface. Step 124 monitors if a manual input navigation device hasbeen actuated. If so, then step 126 reads the current tilt angleprovided by a sensing device and stores the current tilt angle as areference tilt angle. Step 128 then stops and resets a timer.

After step 128, or upon step 124 determining that a manual inputnavigation device has not been actuated, step 130 reads the current tiltangle of the mobile device, and step 132 measures the difference betweenthe current tilt angle and the reference tilt angle to determine thedelta tilt angle.

After the delta tilt angle in step 132 is determined, step 134determines if the delta tilt angle has crossed a threshold. A thresholdmay be crossed either positively or negatively, such as the delta tiltangle exceeding a threshold angle or falling below a threshold angle,respectively.

If step 134 determines that a threshold has not been crossed, then theprocess returns to step 124. If, however, step 134 determines that athreshold has been positively crossed, then step 136 determines if thetimer is on. If step 136 determines that the timer is not on, then step138 starts the timer, which begins to count from an initial value. Afterstep 138, step 140 generates a sensor navigation signal to alter theposition of the graphical element. The sensor navigation signalgenerated in step 140 sets the rate of altering of the relative positionof the graphical element at an initial value. This initial value may bea relatively slow scroll rate. The process then returns to step 124.

Returning to step 136, if it is determined that the timer is on, thenstep 142 reads the timer and updates the sensor navigation signal basedon the timer value. In one embodiment, the sensor navigation signal maybe updated so that the scroll rate increases in a near-continuousmanner. In another embodiment, the sensor navigation signal may beupdated so that the scroll rate increases incrementally based on a timeduration, e.g., the relative scroll rate may be initially set at 1.0,and may be increased by a relative rate of 1.0 every 1.0 seconds. Otherfunctions of altering of the relative position of the graphical elementover time may also be used.

Returning to step 134, if it is determined that a threshold isnegatively crossed, then the step 144 generates a sensor navigationsignal to maintain the position of the graphical element. The processthen returns to step 128, and the timer is stopped and reset to aninitial value.

The process of FIG. 5 has been described with respect to a particularthreshold. In another embodiment, step 134 and subsequent steps may bemodified to determine whether a positive threshold or a negativethreshold, such as β₁ and −β₁ of FIG. 3, has been crossed. Based on thisdetermination, the relative position of a graphical element may bechanged in first and second directions, respectively, at rates based onthe timer values. Additionally, hysteresis may also be implemented asdescribed with reference to FIG. 4.

The process of FIG. 5 continues until the graphical user interface isexited. The graphical user interface may be exited by selecting aparticular data element, exiting a program, or by some other processstep.

FIG. 6 is a flow chart 150 illustrating a process of adjusting a rate ofaltering of the relative position of the graphical element in the mobiledevice graphical user interface based on the cardinality of a data list.Step 152 determines the cardinality of a data list. Step 154 adjusts therate of altering the position of the graphical element based on thecardinality determined in step 152.

The process of FIG. 6 facilitates the navigation of a graphical elementthrough both large and small data collections. For example, a defaultrate of adjusting the relative position of the graphical element in alist of 50 data elements would be less than the default rate in a listof 5000 data elements.

FIG. 7 is a flow chart 160 illustrating a process of adjusting a rate ofaltering of the relative position of the graphical element in the mobiledevice 10 graphical user interface based on a cycled count from asecondary manual input navigation device. A secondary manual inputnavigation device may comprise another manual input navigation device,such as a key, or may alternatively comprise a separate actuationmovement of the first manual input navigation device.

Step 162 monitors for a secondary manual input actuation. When asecondary manual input actuation is detected, step 164 cycles a countvalue. Finally, in step 166, the rate of altering of the relativeposition of the graphical element is adjusted based on the cycled count.

Other processing capabilities may also be implemented in addition to orin conjunction with the processes described with respect to FIGS. 1-7above. For example, a processor may be configured to detect motionpatterns in addition to tilting about an axis. One such motion patternis a flick of the wrist, which results in a rapid fluctuation of theoutput of the sensor 50. Upon recognizing this pattern, the processormay be configured to alter the position of the graphical element to abeginning or end of a data list. Alternatively, the processor may beconfigured to perform a page function to page through data upon thedetection of a particular motion pattern.

FIGS. 8 and 9 are example circuit implementations for detecting a tiltangle of the mobile device 10. The circuit of FIG. 8 provides hysteresisfor a plurality of threshold values. While the circuit of FIG. 8 isdescribed with respect to a single axis, similar circuits may beimplemented for other axes of the sensor 50.

The sensor output 50 is provided to an amplifier 214, the output ofwhich, in turn, is provided to an analog-to-digital converter 204 andcomparators 216 and 218. The comparators 216 and 218 comprise a windowcomparator, having lower and upper reference values provided from bufferamplifiers 210 and 212. The OR gate 220 goes high whenever the amplifiedsensor output value is outside the range defined by the lower and upperreference values of the buffer amplifiers 210 and 212. The bufferamplifiers 210 and 212 buffer the outputs of digital-to-analogconverters 206 and 208, respectively. The processor 202 may selectivelyadjust the output of the digital-to-analog converters 206 and 208 toprovide hysteresis when a particular threshold level is crossed.

In operation, actuation of the manual input navigation device 40generates an input navigation signal. The processor 202 stores theoutput of the analog-to-digital converter 204 as the current tilt value,and provides the necessary digital signals to digital-to-analogconverters 206 and 208 to set the lower and upper values of the windowcomparator. If the amplified output of the sensor 50 falls outside therange defined by the lower and upper reference values of bufferamplifiers 210 and 212, causing one of the comparators 216 or 218 to gohigh, then the OR gate 220 likewise goes high.

Upon the output of OR gate 220 going high, the processor 202 reads theoutput of the analog-to-digital convert 204 and determines whether athreshold has been crossed positively or negatively. Based upon thisdetermination, the inputs to the digital-to-analog converters 206 and208 are adjusted accordingly.

The circuit of FIG. 9 provides for dual-axis processing of a sensor 50.Amplifiers 234 and 236 amplify sensor 50 outputs corresponding to x-axisand y-axis tilt angles, respectively. The processor 202 monitors theamplifiers 234 and 236 via a multiplexor 238 and an analog-to-digitalconverter 232.

In operation, actuation of the manual input navigation device 40generates an input navigation signal. In response, the processor 202 maystore an x-axis reference tilt angle and a y-axis reference tilt angle.The processor may then carry out additional processing steps, such asthose described with respect to FIGS. 1-7 above.

Other circuitry may also be used in conjunction with the sensor 50. Forexample, the sensor 50 itself may include processing circuitry andprovide a digital output for each sense axis, facilitating a direct linkbetween the sensor and the processor. Additionally, a two-axis orthree-axis accelerometer may be used as a sensor. Temperaturecompensation circuitry and/or processing may also be implemented toadjust for sensor output variations due to temperature sensitivity.Alternatively, the sensor 50 itself may include processing circuitrythat compensates for temperature variations. The accelerometer may be acapacitive or piezoresistive element that measures constantacceleration.

FIG. 10 is a block diagram of an example system 2000 for redirectingelectronic messages to and from a mobile communication device 2020. Themobile communication device 2020 may incorporate the graphical userinterface navigation systems and methods described with reference toFIGS. 1-8 above. The example redirection system 2000 includes anenterprise server 2004, a mail server 2002, a storage medium 2006 forelectronic messaging (e.g., e-mail) account data, and a wireless gateway2016. Also illustrated are the mobile communication device 2020, awireless network 2018, a wide area network (WAN) 2012, a firewall 2010,a desktop client 2008, and one or more other electronic messagingsystems 2014.

The mail server 2002 may include electronic messaging software executingon a computer within a local area computer network (LAN). The mailserver 2002 is coupled to local network devices 2004, 2006, 2008 via theLAN, and is coupled to remote network devices 2014, 2016 via the WAN2012. The LAN and WAN 2012 may be separated by a firewall 2010.

The mail server 2002 maintains an electronic message account within theelectronic message account database 2006 for each desktop client 2008 inthe LAN. The electronic message account database 2006 may be one or morestorage devices coupled to the mail server 2002, and may be includedwithin the same network device as the mail server 2002 or in one or moreseparate devices within the LAN. The desktop client 2008 may be one of aplurality of computers (e.g., personal computers, terminals, laptopcomputers, or other processing devices) coupled to the mail server 2002via the LAN that execute electronic messaging software to send andreceive electronic messages via the mail server.

Electronic messages sent from the desktop client 2008 are stored by themail server 2002 in an outgoing message storage location (an “outbox”)within a corresponding electronic message account 2006. If the outgoingmessage is addressed to an electronic message account within the LAN,then the mail server 2002 delivers the message to an incoming messagestorage location (an “inbox”) in the appropriate electronic messageaccount 2006. If the outgoing message is addressed to an electronicmessage account in another electronic messaging system 2014, however,then the message is delivered via the WAN 2012. Similarly, incomingelectronic message addressed to the electronic message account 2006 isreceived by the mail server 2002 and stored to the electronic messageaccount database 2006 within the appropriate incoming message storagelocation (“inbox”).

The incoming electronic message may then be retrieved from theelectronic message account 2006 by the desktop client 2008, or may beautomatically pushed to the desktop client 2008 by the mail server 2002.

The enterprise server 2004 may include electronic message redirectionsoftware executing on a computer within the LAN. The enterprise server2004 is operational to redirect electronic messages from the electronicmessage account 2006 to the mobile communication device 2020 and toplace messages sent from the mobile communication device 2020 into theelectronic message account 2006 for delivery by the mail server 2002.The enterprise server 2004 stores mobile device information, such as awireless identification (e.g., a PIN), used to communicate with themobile communication device 2020. The enterprise server 2004 may, forexample, communicate with the mobile communication device 2020 using adirect TCP/IP level connection with the wireless gateway 2016, whichprovides an interface between the WAN 2012 and the wireless network2018.

When an electronic message is received in the inbox of the electronicmessage account 2006, the electronic message is detected by theenterprise server 2004, and a copy of the message and any necessarymobile device information are sent over the WAN 2012 to the wirelessgateway 2016. For example, the enterprise server 2004 may encapsulate acopy of the message into one or more data packets along with a wirelessidentification (e.g., a PIN) for the mobile communication device 2020,and transmit the data packet(s) to the wireless gateway 2016 over adirect TCP/IP level connection. The wireless gateway 2016 may then usethe wireless identification and/or other mobile device information totransmit the data packets(s) containing the electronic message over thewireless network 2018 to the mobile communication device 2020.

Electronic messages sent from the mobile communication device 2020 maybe encapsulated into one or more data packets along with a networkidentification for the enterprise server 2004 and then transmitted overthe wireless network 2018 to the wireless gateway 2016. The wirelessgateway 2016 may use the network identification for the enterpriseserver 2004 to forward the data packet(s) over the WAN 2012 to theenterprise server 2004, preferably via a direct TCP/IP level connection.Upon receiving the data packet(s) from the wireless gateway 2016, theenterprise server 2004 places the enclosed electronic message into theoutbox of the associated electronic message account 2006. The mailserver 2002 then detects the electronic message in the outbox anddelivers the message, as described above.

Security may be maintained outside of the firewall 2010 by encryptingall electronic messages sent between the enterprise server 2004 and themobile communication device 2020. For instance, an electronic message tobe redirected to the mobile communication device 2020 may be encryptedand compressed by the enterprise server 2004, and the encrypted messagemay then be encapsulated into one or more data packets for delivery tothe mobile communication device 2020. To maintain security, theelectronic message may remain encrypted over the entire communicationpath 2016, 2018, and 2012 from the enterprise server 2004 to the mobilecommunication device 2020. Similarly, electronic messages sent from themobile communication device 2020 may be encrypted and compressed by themobile communication device 2020 before being packetized and transmittedto the enterprise server 2004, and may remain encrypted over the entirecommunication path 2016, 2018, 2012 from the mobile communication device2020 to the enterprise server 2004.

In addition, the enterprise server 2004 may include a communicationsubsystem, a memory subsystem and a processing subsystem. Thecommunication subsystem may be operable to communicate with the wirelessgateway 2016 over the WAN 2012. The memory subsystem may be operable tostore data and program information. The processing subsystem may beoperable to store and retrieve data in the memory subsystem and executeprograms stored in the memory subsystem, and to cause the communicationsubsystem to transmit and receive information over the WAN 2012.

FIG. 11 is a block diagram illustrating an example mobile communicationdevice 2100. The mobile device 2100 includes a processing subsystem2138, a communications subsystem 2111, a short-range communicationssubsystem 2140, a memory subsystem 2124, 2126, and various other devicesubsystems and/or software modules 2142. The mobile device 2100 alsoincludes a user interface, which may include a display 2122, a serialport 2130, keyboard 2132, a speaker 2134, a microphone 2136, one or moreauxiliary input/output devices 2128, and/or other user interfacedevices. The graphical user interface systems and methods described withreference to FIGS. 1-8 above may be implemented in the auxiliary I/O2128, microprocessor 2138, and device subsystems 2142.

The processing subsystem 2138 controls the overall operation of themobile device 2100. Operating system software executed by the processingsubsystem 2138 may be stored in a persistent store, such as a flashmemory 2124, but may also be stored in other types of memory devices inthe memory subsystem, such as a read only memory (ROM) or similarstorage element. In addition, system software, specific deviceapplications, or parts thereof, may be temporarily loaded into avolatile store, such as a random access memory (RAM) 2126. Communicationsignals received by the mobile device 2100 may also be stored to RAM2126.

The processing subsystem 2138, in addition to its operating systemfunctions, enables execution of software applications 2124 on the device2100. A predetermined set of applications that control basic deviceoperations, such as data and voice communications, may be installed onthe device 2100 during manufacture. In addition, a personal informationmanager (PIM) application, including an electronic messagingapplication, may be installed on the device. The PIM may, for example,be operable to organize and manage data items, such as e-mail, calendarevents, voice mails, appointments, and task items. The PIM applicationmay also be operable to send and receive data items via the wirelessnetwork 2119.

Communication functions, including data and voice communications, areperformed through the communication subsystem 2111, and possibly throughthe short-range communications subsystem 2140. The communicationsubsystem 2111 includes a receiver 2112, a transmitter 2114 and one ormore antennas 2116, 2118. In addition, the communication subsystem 2111also includes a processing module, such as a digital signal processor(DSP) 2120 or other processing device(s), and local oscillators (LOs)2113. The specific design and implementation of the communicationsubsystem 2111 is dependent upon the communication network in which themobile device 2100 is intended to operate. For example, a mobile device2100 may include a communication subsystem 2111 designed to operatewithin the Mobitex™ mobile communication system, the DataTAC™ mobilecommunication system, a GSM network, a GPRS network, a UMTS network,and/or an EDGE network.

Network access requirements vary depending upon the type ofcommunication system. For example, in the Mobitex and DataTAC networks,mobile devices are registered on the network using a unique personalidentification number or PIN associated with each device. In UMTS andGSM/GPRS networks, however, network access is associated with asubscriber or user of a device. A GPRS device therefore requires asubscriber identity module, commonly referred to as a SIM card, in orderto operate on a GSM/GPRS network.

When required network registration or activation procedures have beencompleted, the mobile device 2100 may send and receive communicationsignals over the communication network 2119. Signals received by theantenna 2116 from the communication network 2119 are routed to thereceiver 2112, which provides signal amplification, frequency downconversion, filtering, channel selection, etc., and may also provideanalog to digital conversion. Analog-to-digital conversion of thereceived signal allows the DSP to perform more complex communicationfunctions, such as demodulation and decoding. In a similar manner,signals to be transmitted to the network 2119 are processed (e.g.,modulated and encoded) by the DSP 2120 and are then provided to thetransmitter 2114 for digital to analog conversion, frequency upconversion, filtering, amplification and transmission to thecommunication network 2119 (or networks) via the antenna 2118.

In addition to processing communication signals, the DSP 2120 providesfor receiver 2112 and transmitter 2114 control. For example, gainsapplied to communication signals in the receiver 2112 and transmitter2114 may be adaptively controlled through automatic gain controlalgorithms implemented in the DSP 2120.

In a data communication mode, a received signal, such as a text messageor web page download, is processed by the communication subsystem 2111and input to the processing device 2138. The received signal is thenfurther processed by the processing device 2138 for output to a display2122, or alternatively to some other auxiliary I/O device 2128. A deviceuser may also compose data items, such as e-mail messages, using akeyboard 2138 and/or some other auxiliary I/O device 2128, such as atouchpad, a rocker switch, a thumb-wheel, or some other type of inputdevice. The composed data items may then be transmitted over thecommunication network 2119 via the communication subsystem 2111.

In a voice communication mode, overall operation of the device issubstantially similar to the data communication mode, except thatreceived signals are output to a speaker 2134, and signals fortransmission are generated by a microphone 2136. Alternative voice oraudio I/O subsystems, such as a voice message recording subsystem, mayalso be implemented on the device 2100. In addition, the display 2122may also be utilized in voice communication mode, for example, todisplay the identity of a calling party, the duration of a voice call,or other voice call related information.

The short-range communications subsystem 2140 enables communicationbetween the mobile device 2100 and other proximate systems or devices,which need not necessarily be similar devices. For example, theshort-range communications subsystem 2140 may include an infrared deviceand associated circuits and components, or a Bluetooth™ communicationmodule to provide for communication with similarly-enabled systems anddevices.

The apparatus, methods, flow diagrams, and structure block diagramsdescribed herein may be implemented in the mobile devices describedherein by mobile device program code comprising program instructionsthat are executable by the mobile device processing subsystem. Otherimplementations may also be used, however, such as firmware or evenappropriately designed hardware configured to carry out the methods andflow diagrams described herein. Additionally, the flow diagrams andstructure block diagrams described herein, which describe particularmethods and/or corresponding acts in support of steps and correspondingfunctions in support of disclosed structural means, may also be utilizedto implement corresponding software structures and algorithms, andequivalents thereof.

This written description sets forth the best mode of the claimedinvention, and describes the claimed invention to enable a person ofordinary skill in the art to make and use it, by presenting examples ofthe elements recited in the claims. The patentable scope of theinvention is defined by the claims themselves, and may include otherexamples that occur to those skilled in the art. Such other examples,which may be available either before or after the application filingdate, are intended to be within the scope of the claims if they havestructural elements that do not differ from the literal language of theclaims, or if they include equivalent structural elements withinsubstantial differences from the literal language of the claims.

1. A method performed by an electronic device, the method comprising:displaying a graphical element on a display of the electronic device;and altering a position of the displayed graphical element on thedisplay based on a change in a tilt angle of the electronic device. 2.The method of claim 1 wherein the graphical element's position isaltered at a rate based on a magnitude of the change in the tilt angle.3. The method of claim 1 wherein the graphical element's position isaltered at a rate based on an amount of time that the change in the tiltangle has exceeded a threshold.
 4. The method of claim 1 wherein thegraphical element's position is altered at a rate based on a number ofdifferent thresholds the change in the tilt angle has exceeded.
 5. Themethod of claim 1 wherein the graphical element is a list of items. 6.The method of claim 5 wherein the altering includes scrolling the listat a rate that is based on cardinality of the list.
 7. The method ofclaim 1 wherein the graphical element is a selection box that designatesan item among a list of items displayed by the display.
 8. The method ofclaim 1 further comprising storing a current tilt angle as a referencetilt angle, and subsequently comparing subsequently sensed tilt anglesto the reference tilt angle.
 9. The method of claim 1 wherein the tiltangle is a first tilt angle relating to forward-backward tilting of thedisplay, and a second tilt angle relates to side-to-side tilting of thedisplay, and the altering includes moving the graphical element relativeto the display in a first direction based on the first tilt angle andmoving the graphical element relative to the display in a seconddirection based on a second tilt angle.
 10. The method of claim 9further comprising: storing a current first tilt angle as a firstreference tilt angle and a current second tilt angle as a secondreference tilt angle, and subsequently comparing subsequently sensedfirst and second tilt angles respectively to the first and secondreference tilt angles.
 11. A non-transitory machine-readable mediumcomprising program instructions that are executable by a processor of anelectronic device to: display a list of items; sense a manualmanipulation of the device indicating a direction for scrolling thelist; and scroll the list in the indicated direction.
 12. Themachine-readable medium of claim 11 wherein the manual manipulation istilting of the device and the indicated direction is indicated bydirection of the tilting.
 13. The machine-readable medium of claim 12wherein the manual manipulation is a rapid tilt fluctuation of thedevice indicative of a flick of a wrist and the indicated direction isindicated by direction of the flick.
 14. The machine-readable medium ofclaim 11 wherein the manual manipulation is rotation of a thumbwheel ofthe device and the indicated direction is indicated by direction of therotation.
 15. The machine-readable medium of claim 11 wherein thescrolling is at a rate based on a tilt angle of the device.
 16. Themachine-readable medium of claim 15 wherein the rate is based also on anumber of thresholds the tilt angle has exceeded.
 17. Themachine-readable medium of claim 11 wherein the list is in the form of aspreadsheet.
 18. The machine-readable medium of claim 11 wherein thescrolling includes scrolling the list in the indicated direction and ata rate based on the number of items in the list.
 19. A non-transitorymachine-readable medium comprising program instructions that areexecutable by a processor of an electronic device to: display a list ofitems along with a selection indicator that indicates a selected item ofthe list; sense a manual manipulation of the device indicating adirection for moving the selection indicator; and move the selectionindicator along the listed items in the indicated direction.
 20. Themachine-readable medium of claim 19 wherein the list is in the form of aspreadsheet and the selection indicator is a selection box.
 21. Themachine-readable medium of claim 19 wherein the manual manipulation istilting of the device and the indicated direction is indicated bydirection of the tilt.
 22. The machine-readable medium of claim 19wherein the moving includes moving the selection indicator along thelisted items in the indicated direction at a rate that is based on anumber of items in the list.